Many modern electronic devices incorporate a touch panel to display information and to receive input that is activated by touching the display. A mutual capacitance touch panel typically comprises a capacitive sensing medium having a plurality of row traces and a plurality of column traces. The row traces are termed drive channels and the column traces are sense channels and are typically arranged in a rectangular grid pattern forming an X-Y coordinate system. A voltage is stimulated on the drive channels, and a voltage is measured at each sense channel. Each intersection of drive channel and sense channel represents a capacitive sensing node. Since the human body is an electrical conductor, when a finger actuates the touch panel, such as by touching or even getting very close to its surface, the electrostatic field of the touch panel is distorted, resulting in a measurable change in capacitance.
A touch panel controller decodes the coordinates of a touch upon the touch panel by repetitively scanning the touch panel sense channels in response to stimulation of the drive channels in accordance with an excitation matrix, E. The excitation matrix, E, is a square matrix of order M, where M is the number of drive channels (rows). A touch panel has N sense channels (columns), and typically M is greater than N. An example is a touch panel having 20 drive channels, M, and having 15 sense channels, N. An output voltage is measured at each sense channel. The sense channel output voltages are stored as a vector Y, having order M. For M>N, the values of YN+1 . . . YM are able to be zero. To decode the coordinates of a touch based upon capacitance at an intersection of a drive channel and a sense channel, a vector of capacitances, X, is determined from the sense channel voltages, Y, and the excitation matrix, E. X is also a vector of order M. X, Y, and E are related by the following equation (1).E*X=Y  (1)To find the vector of capacitances, X, the inverse of the excitation matrix, E, indicated by E−1, is multiplied by the vector of sense channel voltages, Y, as shown in the following equation (2).X=E−1*Y  (2)To implement the above equations in a touch panel controller, (1) a suitable excitation matrix, E, needs to be determined, (2) wherein E is invertible, (3) E preferably has a low, non-zero condition number, and (4) the variance in output voltage produced by the channels, using E as the excitation matrix, is minimized when no touch is upon the touch panel.
E is invertible if the condition number of E is greater than zero. A matrix with a condition number that is close to one is termed “well-conditioned”, meaning that its inverse can be computed with good accuracy. In practice, an excitation matrix have a condition number of two, or less than two, is sufficiently well-conditioned for touch panel decoding. A matrix with a condition number greater than one is non-orthogonal. Generally, the excitation matrix in the prior art will not have a condition number lower than two. Thus, the prior art teaches that the excitation matrix will not be orthogonal. Non-orthogonal excitation is sensitive to phase shifts that cause inter-code interference. The phase shifting is due to delay in propagation of voltages from the drive channels to the sense channels. Further, as the condition number of the excitation matrix increases, the signal-to-noise ratio on the drive and sense channels deteriorates. A poor signal-to-noise ratio at the column sense channels requires more dynamic range in amplifiers at the column sense channels and greater precision in the analog-to-digital convertors receiving the output of each amplifier. It is preferable to have a design with high a signal-to-noise ratio thereby enabling the use of smaller, less expensive, amplifiers with a lower dynamic range. It is also preferable to use an orthogonal excitation matrix to reduce inter-code interference due to phase shifts.
One way to find a suitable excitation matrix, E, meeting the above criteria, is to do an exhaustive search using a computational tool such as a MATLAB™ computational tool. Assuming an example touch panel having twenty (20) rows, an exhaustive search would require searching 240 potential excitation matrices to find the optimal excitation matrix in the solution space. Using current technology, an exhaustive search for an excitation matrix meeting the above criteria is computationally too lengthy to be practical.
Another way to find a suitable excitation matrix, E, is to take a sample of potential Es to find an E meeting the above criteria. The matrix, E, selected from the sample will be invertible and have the lowest condition number of the E's sampled. However, there is no assurance that the selected matrix, E, has the lowest possible condition number of all potential Es and therefore may be sub-optimal.
Additionally, a selected excitation matrix, E, in the prior art will typically have real-valued coefficients requiring that the touch panel controller store all of the M×N real-valued coefficients, increasing the storage requirements for the touch panel controller. Further, to decode the coordinates of a touch upon the touch panel, the touch panel controller will need to performed numerous floating-point calculations, increasing the cost, size, heat produced, and storage required to implement a touch panel controller on an integrated circuit. Floating-point calculations also increase the computation time to decode the panel, thereby limiting the available scan rate for decoding touches upon the panel.
As the size of touch panels increase to meet new market needs, such as for larger tablet PC's, the difficulty of finding a suitable excitation matrix increases exponentially. In addition, the problem of phase shift increases due the larger panel having longer signal path lengths that introduce greater drive signal propagation delay.